This invention relates generally to techniques for generating very high-order Hermite functions and, more particularly, to the generation of high-order Hermite-Gaussian functions for use in simulating operation of various devices in which electromagnetic waves are propagated in a cavity or in free space. Hermite functions, usually indicated by Hn(x), have been used extensively in the construction of antenna patterns, in the representation of laser beams and in the simulation of electromagnetic wave behavior in stable laser cavities. Mathematical representation of electromagnetic (EM) waves is difficult because EM waves typically behave in a complex manner involving many modes of propagation. It is well known that Hermite functions can be used in the simulation of EM wave behavior in various environments, and that the accuracy of the mathematical representation is dependent on the extent to which higher-order Hermite functions can be generated. In particular, the accuracy of the mathematical representation is increased by the use of higher-order Hermite functions.
The Hermite function is a polynomial that can be generated for order n+1 from the same functions generated for order n and order n−1, using a classic recursion formula:Hn+1(x)=2xHn(x)−2nHn−1(x).
All higher-order polynomials can, therefore, be generated from the zero-order Hermite function, H0(x)=1. For almost any value of x, the resulting values of the Hermite functions increase very rapidly with n, and increase especially rapidly when x is large. To reduce the functions to a manageable magnitude, the Hermite functions are usually normalized according to the Hermite-Gaussian function, which is defined as:Gn(x)=e−x2{tilde over (H)}n(√{square root over (2)}x) and {tilde over (H)}n(x)=Hn(x)/√{square root over (2nn!√{square root over (π)})}.where Gn(x) is the order-n Hermite-Gaussian function of x and {tilde over (H)}n(x) is the normalized order-n Hermite function of x.
The Hermite-Gaussian function, Gn(x), has a finite and oscillating dependence on x up to x˜(n+1)1/2. FIGS. 1A-1D depict computed Hermite-Gaussian functions for n=10, 50, 200 and 250, respectively, each plotting the function value for increasing positive and negative values of x (along the horizontal axis). These graphs were generated using a commercially available mathematical software package (MATHEMATICA®). In general, each graph shows the finite and oscillating dependence on x up to x˜(n+1)1/2. For example, the Hermite-Gaussian function for n=10 oscillates regularly up to x˜3, as shown in FIG. 1A, and for n=50 up to x˜7, as shown in FIG. 1B. For the highest order shown (n=250, in FIG. 1D), the Hermite-Gaussian function generated begins to show a rapid increase in magnitude and irregular variations before reaching the x value of 2511/2 (˜16). In other words, the generating process completely breaks down in this case. The graph of FIG. 1D is, in fact, an illustration of a critical hardware limitation in the generation of high-order Hermite-Gaussian functions. Most computers currently manufactured for scientific calculations employ a 32-bit or 64-bit word length for storage and computation. The largest number that can be stored in the 64-bit format is determined-by the format used for the numbers stored. In a widely used standard for floating-point numbers, promulgated by the IEEE (Institute for Electrical and Electronics Engineers), the 64-bit word includes one sign bit, an 11-bit exponent and a 52-bit fraction. In this format the largest number that can be stored in a 64-bit word is approximately 2∀1023˜10∀308. 
One possible solution to this hardware limitation is to employ the multiprecision computation system proposed by David H. Bailey of NASA (National Aeronautics and Space Administration). For details, see a paper by David H. Bailey entitled “Fortran-90 Based Multiprecision System,” RNR Technical Report RNR-94-013, Jun. 6, 1994. Basically, the Bailey system allows the number of precision digits to be increased into the millions. The disadvantages of this software solution are that it requires the use of Fortran-90 and an external library, and, when implemented, it runs much slower than the conventional Hermite function generator.
Alternatively an improvement can be realized with the use of the recursion formula for normalized Hermite functions. This recursion formula defines the normalized Hermite function of order n+1 as:{tilde over (H)}n+1(x)=[√{square root over (2)}x{tilde over (H)}n(x)−√{square root over (n)}{tilde over (H)}n−1(x)]/√{square root over (n+)}1.This formula is able to push the recursive generation of Hermite functions to a higher order than if the classic recursion formula is used, but not much higher, and certainly not high enough to meet the needs of many applications involving simulation and analysis of electromagnetic wave phenomena.
It will be appreciated from the foregoing that there is still a need for a new approach for generation of Hermite functions of very high order, such as n greater than 10.000. Improvements in the generation of Hermite functions prior to this invention have not been able to reach anywhere near this goal because higher order Hermite functions become so large as to exceed the computational limits of conventional computers. Therefore, there is a need for a modified Hermite function generator that results in functions that are “well behaved” even at orders n much greater than 10,000. The present invention satisfies this need.